package com.hzw.saas.api.rss;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hzw.saas.api.rss.bo.LibraryBO;
import com.hzw.saas.common.config.util.PageParam;

import java.util.List;

public interface ILibraryService {

    /**
     * 新增文章
     * @param libraryBO
     */
    LibraryBO addArticle(LibraryBO libraryBO);

    /**
     * 删除文章
     * @param pid
     */
    void deleteArticle(String  pid);

    /**
     * 批量删除文章
     * @param pids
     */
    void deleteBatch(List<String> pids);

    /**
     * 修改文章
     * @param libraryBO
     */
    void updateArticle(LibraryBO libraryBO);

    /**
     * 节点下是否有文章
     * @param catalogId
     * @return
     */
    boolean hasArticle(String catalogId);
    /**
     * 分页查询文章
     * @param pageParam
     * @param userId
     * @param catalogId
     * @param type
     * @return
     */
    IPage<LibraryBO> list(PageParam pageParam, String userId, String catalogId, Integer type);

    /**
     * 获取用户文献数量
     * @param userId
     * @param catalogId
     * @return
     */
    int libraryCount(String userId, String catalogId);


    /**
     * 过滤文献fileId
     *
     * @param fileIds 待过滤的fileId
     * @return 文献fileId
     */
    List<String> filterArticleFileIds(List<String> fileIds);

    /**
     * 检查文献资源是否存在
     * @param userId
     * @param resourceMd5
     * @return
     */
    boolean existLibrary(String userId, String resourceMd5);

    LibraryBO getLibraryByResourceMd5(String userId, String resourceMd5);

    LibraryBO getByPid(String pid);

    List<LibraryBO> getAriticleIds(List<String> collect);

    List<LibraryBO> findAll();

    void updateAll(List<LibraryBO> collect);

    List<LibraryBO> getByArticleIds(List<String> pids);
}
